package top.kaoshanji.p4ch29e;

/**
 * 代码清单-p4ch29e-380页c：抽象化角色
 * @author kaoshanji
 * ^_^
 * create time 2025/3/28 17:11
 */
public abstract class Abstraction {

    // 定义对实现化角色的引用
    private Implementor imp;

    // 约束子类必须实现该构造函数
    public Abstraction(Implementor imp) {
        this.imp = imp;
    }

    // 自身的行为和属性
    public void request() {
        this.imp.doSomething();
    }

    // 获得实现化角色
    public Implementor getImp() {
        return imp;
    }

}
